/*
 * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


// WARNING! THIS FILE IS AUTO-GENERATED, DO NOT MAKE CHANGES, THEY WILL BE LOST ON NEXT GENERATION!

import { int32, int64, float32 } from "@koalaui/common"
import { KInt, KPointer, KBoolean, KStringPtr, wrapCallback, NativeBuffer } from "@koalaui/interop"
import { NodeAttach, remember } from "@koalaui/runtime"
import { CommonMethod, BlurStyle } from "./ArkCommonInterfaces"
import { Callback_Number_Void } from "./SyntheticDeclarations"
import { ResourceColor, Font, Position, Length } from "./ArkUnitsInterfaces"
export enum IndexerAlign {
    LEFT = 0,
    Left = 0,
    RIGHT = 1,
    Right = 1,
    START = 2,
    END = 3
}
export interface AlphabetIndexerOptions {
    arrayValue: Array<string>;
    selected: number;
}
export type AlphabetIndexerInterface = (options: AlphabetIndexerOptions) => AlphabetIndexerAttribute;
export type OnAlphabetIndexerSelectCallback = (index: number) => void;
export type OnAlphabetIndexerPopupSelectCallback = (index: number) => void;
export type OnAlphabetIndexerRequestPopupDataCallback = (index: number) => Array<string>;
export interface AlphabetIndexerAttribute extends CommonMethod<AlphabetIndexerAttribute> {
    onSelected: ((index: number) => void);
    color: ResourceColor;
    selectedColor: ResourceColor;
    popupColor: ResourceColor;
    selectedBackgroundColor: ResourceColor;
    popupBackground: ResourceColor;
    popupSelectedColor: ResourceColor;
    popupUnselectedColor: ResourceColor;
    popupItemBackgroundColor: ResourceColor;
    usingPopup: boolean;
    selectedFont: Font;
    popupFont: Font;
    popupItemFont: Font;
    itemSize: string | number;
    font: Font;
    onSelect: OnAlphabetIndexerSelectCallback;
    onRequestPopupData: OnAlphabetIndexerRequestPopupDataCallback;
    onPopupSelect: OnAlphabetIndexerPopupSelectCallback;
    selected: number;
    popupPosition: Position;
    autoCollapse: boolean;
    popupItemBorderRadius: number;
    itemBorderRadius: number;
    popupBackgroundBlurStyle: BlurStyle;
    popupTitleBackground: ResourceColor;
    enableHapticFeedback: boolean;
}
